#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
//int my_strcmp(const char* str1,const char *str2) {
//	while (*str1==*str2) {
//		if (*str1=='\0') {
//			return 0;
//}
//		*str1++;
//		*str2++;
//}
//	if (*str1>*str2) {
//		return  1;
//	}
//	else {
//		return -1;
//	}
//
//	}
//int main() {
//	char  arr1[] = "abcdef";
//	char arr2[] = "abc";
//	int r = my_strcmp(arr1,arr2);
//	if (r>0) {
//		printf("arr1>arr2\n");
//	}
//	else if (r<0) {
//		printf("arr1<arr2 \n");
//	
//	}
//	else {
//		printf("arr1==arr2\n");
//	}
//	return 0;
//
#include<string.h>
//char* my_strcat(char * dest ,const char* src) {
//	assert(src&&dest);
//	char* ret = dest;
//	int len = 0;
//	//1.
//	while (*dest!='\0') {
//		dest++;
//		len++;
//	}//2.
//	while (len--) {// hello
//	*dest	=*src;
//	src++;
//	dest++;
//	}
//	*dest = '\0';
//	return ret;
//}
//int main() {
//	char arr1[20] = "hello";
//	/*int r = strlen(arr1[20]);
//	printf("%d",r);*/
//	char* desa = my_strcat(arr1, arr1);
//	printf("%s\n", desa);
//	return 0;
//}
void* my_memmove(void * dest,const void * src,size_t num) {
	assert(dest&&src);
	void * ret = dest;
	if (dest<src) {
		while (num--) {
			*(char*)dest =*(char*)src;
			src =(char*)src+1;
			dest = (char*)dest + 1;
		}
	}
	else {
		while (num--) {
		*((char*)dest+num) = *((char*)src+num);
		}
		
	}
	return ret;

}
int main() {
	int arr1[] = {1,2,3,4,5,6,7,8,9,10};
	int sz = sizeof(arr1) / sizeof(arr1[0]);
	/*int arr2[30] = {0};*/
	my_memmove(arr1+2, arr1, 24);
	for (int i = 0; i < sz; i++) {
		printf("%d ",arr1[i]);
	}
	return 0;
}
